package com.common;

import java.awt.Component;
import java.util.List;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

public class FrameUtil {

	/**
	 * 返回 指定坐标的  JButton 对象
	 * @param content
	 * @param x
	 * @param y
	 * @param width
	 * @param height
	 * @return
	 */
	public static JButton getJButton(String content, int x, int y, int width, int height){

		JButton obj = new JButton(content);
		obj.setBounds(x, y, width, height);
		return obj;
	}

	/**
	 * 返回 指定坐标的  JLabel 对象
	 * @param content
	 * @param x
	 * @param y
	 * @param width
	 * @param height
	 * @return
	 */
	public static JLabel getJLabel(String content, int x, int y, int width, int height){

		JLabel obj = new JLabel(content);
		obj.setBounds(x, y, width, height);
		return obj;
	}

	/**
	 * 返回 指定坐标的  JTextField 对象
	 * @param x
	 * @param y
	 * @param width
	 * @param height
	 * @return
	 */
	public static JTextField getJTextField( int x, int y, int width, int height){

		JTextField obj = new JTextField();
		obj.setBounds(x, y, width, height);
		return obj;
	}

	/**
	 * 将 组件 添加到 JFrame 中
	 * @param jf
	 * @param components
	 */
	public static void addComponent(JFrame jf, List<Object> components){
		for(Object obj : components){
			if(obj instanceof Component){
				jf.add((Component)obj);
			}
		}
	}

	/**
	 * 更新 tableModel 展示数据<p>
	 * 数据源为空时，默认追加 15个空行；<p>
	 * 数据源不为空时，加载完数据 追加 10个空行。
	 * @param model
	 * @param datas 数据源
	 */
	public static void refreshTableModelData(DefaultTableModel model, List<Object[]> datas){
		if(null != model){
			model.setRowCount(0);
			if(datas.size() > 0){
				int row = 0;
				for (int i = 0; i < datas.size(); i++) {
					model.insertRow(row++, datas.get(i));
				}
				for(int i = 0 ; i < 10 ; i++){
					model.insertRow(row++, new Object[]{});
				}
			}else{
				for(int i = 0 ; i < 15 ; i++){
					model.insertRow(i, new Object[]{});
				}
			}
		}
	}

	/**
	 * 添加图标
	 * @param jFrame
     */
	public static void addIcon(JFrame jFrame){
		ImageIcon ii = new ImageIcon("resource/DB_i.jpg");
		jFrame.setIconImage(ii.getImage());
	}
}
